歡迎來到《Git 起來!》系列的第三天!
前兩天我們聊了 git add
和 git commit
知道怎麼把檔案放進「購物車」,再按下「結帳鍵」存進歷史。
那麼問題來了:
在開發過程中,我怎麼知道現在「購物車」裡有什麼?
我怎麼查到之前到底「買過什麼」?
這就是 git status
和 git log
的任務。
它們就像是 Git 世界裡的 GPS 導航系統,幫你搞清楚自己「在哪裡」、「走過哪些路」。
git status
:現在的座標想像你在逛網拍,購物車裡有什麼?:
git add
)git add
,準備 commit)這些狀況,git status
都會為你列出來。
幫助我們確認目前專案的狀態:
git status
常見輸出會包含:
🔎 範例:
On branch main
Changes not staged for commit:
modified: index.html
deleted: app.js
Changes to be committed:
new file: style.css
Untracked files:
notes.md
login.js
解讀:
On branch main
→ 目前在 main
分支。
Changes not staged for commit
→ index.html
(修改)、app.js
(刪除),但還沒 git add
。
Changes to be committed
→ style.css
(新檔案),已經被 git add
,下次 commit 會記錄。
Untracked files
→ notes.md
是新檔,Git 沒追蹤,需要 git add
才會進入版本控制。
👉 小技巧:
git status -s
:精簡輸出,適合老手快速掃描git log
:走過的路徑如果 git status
是現在的座標,那 git log
就是歷史足跡。
就像打開購物紀錄,你可以回顧:之前到底買過什麼?
git log
會列出所有 commit,包含:
🔎 範例:
commit a3f1c9d8e2f4d1f6b7c2
Author: Sean <sean@example.com>
Date: Mon Sep 15 10:00 2025 +0800
feat: 新增首頁設計
commit b7e2d3c1a9f8d0e2c7f1
Author: Sean <sean@example.com>
Date: Sun Sep 14 22:30 2025 +0800
fix: 修正按鈕樣式
👉 小技巧:
git log --oneline
:一行一個 commit,更簡潔git log --graph --oneline --decorate
:圖形化展示分支,適合看分支狀態git status
:導航告訴你「現在在哪裡」git log
:導航幫你回放「剛剛是怎麼走過來的」這兩個指令就像 Google Maps 的「目前位置」+「行駛軌跡」。
沒有它們,你很容易迷路,甚至都搞不清楚自己在哪個分支。
搞混 git status
和 git log
→ git status
只能顯示當前狀態;要看歷史必須用 git log
。
卡在 log 畫面出不來
→ git log
會進入分頁器(less),要按 q
才能退出。
不加參數就嫌 log 太長
→ 善用 --oneline
或 --graph
,會讓輸出更直覺。
git add
,試著用 git status
看差異。add
後再執行 git status
,觀察結果不同。git log --oneline --graph
觀察分支歷史,試著解讀 commit 流程。今天我們學到:
git status
幫助我們了解當前狀態(購物車裡有什麼、還沒 add 的是哪些)git log
幫助我們回顧專案的歷史(之前結過哪些帳、版本變化)明天我們要進一步學 Day 4:git diff
—— 看清楚改了什麼 🔍
讓你不再害怕「到底動了哪些東西?」